home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload Trio 2 / Shareware Overload Trio Volume 2 (Chestnut CD-ROM).ISO / dir31 / gmp002.zip / GMP002.DOC < prev    next >
Text File  |  1993-11-11  |  9KB  |  194 lines

  1. GUS MIDI Player, version 0.02 Alpha - INTERNAL USE ONLY - 11-Nov-93
  2.  
  3. History:
  4.  
  5. 0.02 - Added MIDI channel mask CL option, detailed below
  6.      - Fixed drum channel not drumming in 0.01
  7.      - Erc: returned in decimal instead of hex to match codes below
  8.      - Display more voice status info
  9.  
  10. 0.01 - Yeah, well, what can I say (having fun, though)
  11.  
  12.  
  13. Okay, so after four months I have something for you! The toolkit will be
  14. made available able to on the BBS in the Ruckus developer's conference
  15. as soon as we get some basic testing done. This program contains the
  16. generic MIDI parser and the static LIB version of the GUS support code.
  17. The dynamic DLX version will be tested at a later (same code, just
  18. a couple of small load/management modules, in addition).
  19.  
  20. Back to this program. Here's what you need:
  21.  
  22.  1. 286 or higher CPU - the GUS support code was written using
  23.     a few 286 instructions that made a world of difference.
  24.     Only high-end cards will have 286+ code. The AdLibs, OPL2s,
  25.     will run just fine with an 8088. 1MB of GRAM probably is
  26.     a good idea. All patches are loaded in native form (16-bit,
  27.     full sample).
  28.  
  29.  2. These environment variables must be set:
  30.  
  31.     ULTRASND=260,7,7,11,11
  32.     rem ULTRADIR=F:\SND\_GUS (not used by Ruckus)
  33.     PATDIR=F:\SND\_GUS\MIDI
  34.     rem DLXDIR=F:\PRG\ASM\R2\_DLX (not needed now)
  35.  
  36.     In other words, set the ULTRASND= eVar to something that
  37.     works for your system. The above is my setting. the PATDIR=
  38.     eVar is the location of the GUS patch files (patch file
  39.     version 1.10). The old patch files may not work. Anyway,
  40.     everyone should have their GUS 2.06 disks by now. The new
  41.     patches are on these disks (5.5MB worth!). BTW, this should work:
  42.  
  43.          SET PATDIR=%ULTRADIR%\MIDI
  44.  
  45.     You'll probably need the ULTRADIR= for other GUS software.
  46.     The DLXDIR= is for locating the dynamic link modules. You'll
  47.     know all about these later.
  48.  
  49.  3. That's it. To use the program, GMP002.EXE, you have these
  50.     command-line options:
  51.  
  52.         C>gmp001 pathname.ext /Vnn /Cnnn?
  53.  
  54.         pathname.ext can be any valid DOS pathname to a valid
  55.         MIDI file. GMP002.EXE is setup to play over MIDI channels
  56.         0 to 9, with the percussion on 9 (1-10 for 1-based folk).
  57.         This is just to simplify running Windows CANYON.MID file,
  58.         which is a dual-sequenced MIDI file. Ruckus can deal with
  59.         it, but the interface is not setup yet (i.e., for the
  60.         control program -- itself only about 120 lines of assembly).
  61.         The default patch is 0, acpiano.pat. Ruckus allows for
  62.         remapping patchnames, patch numbers, banks, and so on, but
  63.         again, the interface isn't set up (hey, though it's small,
  64.         there's four months of work in here). Enough on this for now.
  65.  
  66.         The /Vnn is for the number of voices to use. The default is
  67.         32 (1-based). You can use any value from 14 to 32. The number
  68.         at the top-middle during play is the number of voices "stolen".
  69.         The less voices, the more likely this will zoom right along.
  70.         The numbers at the top-left are the current MIDI tick-toc, in
  71.         hex and decimal. As for the table, that's for you to guess
  72.         at for now.
  73.  
  74.         The /Cnnn? is to override the default channels selected. You
  75.         can enter either a hex, binary, or if you can figure it out,
  76.         decimal number here. Hex values must be followed with an "h",
  77.         and binary either a "b" or "y". E.g.:
  78.  
  79.                 /C3FFh  channels 0-9
  80.                 /C3F0h  channels 4-9
  81.                 /C111b  channels 0-2
  82.                 /C1111111b       0-6
  83.                 /C1000011111y    0-4,9
  84.                 /C01000011111b   0-4,9
  85.                 /FFFFh           0-15 (all)
  86.                 /-1              may also work as 0-15, maybe not
  87.  
  88.         At startup the current channel map is shown, just to make sure.
  89.  
  90.         Pressing Esc at any time exits. The on-board timer is used
  91.         so your system time won't be affected if there are any
  92.         system hangs, etc. The PC timer can also be used, but again,
  93.         no interface set up.
  94.  
  95.         If there's a problem, the program should tell you the error code
  96.         in deciaml format. The error codes are at the end of the docs.
  97.         Those < 150 or so should be DOS error codes. Higher are Ruckus.
  98.         Just make a note of any problems you have. If you get a lock up,
  99.         try running GMP002.EXE from DEBUG. There's still much debug code
  100.         in there and INT 3 breakpoints around weak areas. If you get a
  101.         break at an INT 3, let me know the address of the break and also
  102.         the MIDI file you used, voices, etc. Had enough talk? Go for it.
  103.  
  104.     4.  You can contact me through the BBS, preferably in the developer's
  105.         conference, or through my Fido point (Cornel Huth @ 1:387/800.8),
  106.         or via Internet (chuth@lonestar.utsa.edu). As for other cards,
  107.         the SB16 (CSP), PAS-16, Arai-based cards, and a refinement of
  108.         the previous cards supported will also be in the toolkit. I'll
  109.         keep a steady flow of alphas/betas in the conference's download
  110.         area. Just keep me posted on any problems.
  111.  
  112.     5.  One more thing. GMP002.EXE uses a default program/patch load just
  113.         in case. I've got it set to load patch 0, or ACPIANO.PAT. Yeah, I
  114.         could also post the list of filenames<->patches, but you can
  115.         figure out that (tip: the 2.06 manual has lots of errors). There's
  116.         still some loose ends, and I've got to do some more work on the
  117.         volume mapping (kind of scratchy at times -- maybe that's also
  118.         somewhat related to the loose ends..., anyway).
  119.  
  120. <Error List:Prelim>
  121.  
  122. ;temporary RM errors
  123. ERR_MIDI_DEVICE         EQU -1
  124.  
  125. ERR_ILLEGAL_CMD EQU 200
  126. ERR_MIDI_INIT   EQU 210
  127. ERR_MIDI_FORMAT EQU 211
  128. ERR_MIDI_TRACKS EQU 212
  129. ERR_MIDI_TIMING EQU 213
  130. ERR_MIDI_HEADER EQU 214
  131. ERR_MIDI_CHNUM  EQU 215
  132. ERR_NODEVICE    EQU 220
  133. ERR_NOTINGEAR   EQU 223
  134. ERR_INGEAR      EQU 224
  135. ERR_UNKFILE     EQU 225
  136. ERR_NOCHANNEL   EQU 226
  137. ERR_NOXMM       EQU 227
  138. ERR_BADMODE     EQU 228
  139. ERR_INVFMT      EQU 229
  140.  
  141.  
  142.  
  143. ERR_NOT_ENOUGH_MEMORY   EQU 8   ;a DOS error
  144. ERR_UNXEOF      EQU -3          ;unexpected end of file
  145. ERR_DISKFULL    EQU -2          ;disk full
  146.  
  147. ERR_INVALID_TASK EQU 254        ;most likely just an internal error
  148.  
  149. ERR_BADPATH     EQU 242         ;path+patchname+ext > MAX_PATHSIZE
  150. ERR_BADENVVAR   EQU 241
  151. ERR_NOMATCH     EQU 240
  152.  
  153.  
  154. ERR_PATCHZERO   EQU 235         ;patch number is not allocated/no patch data
  155. ERR_PATCHINUSE  EQU 234         ;patch number is in use (gfPatchAlloc)
  156. ERR_NOCACHE     EQU 233         ;no cache available for patch caching
  157. ERR_BADPATCH    EQU 232         ;patch format not handled
  158. ERR_UNKPATCH    EQU 231             
  159. ERR_BADPATCHNO  EQU 230         ;MIDI patch/drum number out-of-range
  160.     
  161. ERR_VOICERUNNING EQU 224        ;voice is running (cannot unassign; stop first)
  162. ERR_VOICENA     EQU 223         ;voice is not available
  163. ERR_NOVOICE     EQU 222         ;voice is not valid
  164. ERR_INVADDR     EQU 221         ;SetVoiceParm begin/loopstart/loopend invalid
  165. ERR_NODEVICE    EQU 220
  166.  
  167. ERR_DMA_TIMEOUT EQU 212
  168. ERR_DMA_BADCMD  EQU 211
  169. ERR_DMA_BUSY    EQU 210
  170.  
  171. ERR_NOMEMORY    EQU 199         ;no/not enough memory from ss$Malloc for MCB
  172. ERR_NOHANDLES   EQU 198         ;no handles left from ss$Malloc for MCB
  173. ERR_MEMCORRUPT  EQU 197         ;memory corrupt from ss$Malloc for MCB
  174. ERR_BADHANDLE   EQU 196         ;handle not valid from ss$Free for MCB/xms$ too
  175.  
  176. ERR_NOXMSMGR    EQU 189         ;xms$Init called but no XMS manager installed
  177. ERR_XMS16MB     EQU 188         ;XMS allocation crossed 16MB (no-go for ISA DMA)
  178.       
  179.  
  180. ;GF-specific error codes found in gf@error
  181.  
  182. EGF_INTERNAL    EQU (1 SHL 8)+1                 ;internal coding error                                  
  183. EGF_UNKPATCH    EQU (ERR_BADPATCH SHL 8)+10     ;patch doesn't start w/ GF...
  184. EGF_INSTR_GT1   EQU (ERR_BADPATCH SHL 8)+11     ;more than 1 instrument in patch
  185. EGF_LAYER_GT1   EQU (ERR_BADPATCH SHL 8)+12     ;more than 1 layer in patch
  186. EGF_DATASIZE    EQU (ERR_NOMEMORY SHL 8)+13     ;patch datasize not even-32
  187. EGF_NOMEMORY    EQU (ERR_NOMEMORY SHL 8)+14     ;not enough GRAM for patch
  188. EGF_NOPATCH     EQU (ERR_BADPATCHNO SHL 8)+15   ;patch is not loaded
  189. EGF_VOICEINUSE  EQU (ERR_VOICENA SHL 8) + 16    ;VIB.running<>0 for patch assign        
  190. EGF_NOFREEVOICE EQU (ERR_VOICENA SHL 8) + 17    ;no free voices (patch assign)
  191. EGF_NOMEMVIB    EQU (ERR_NOMEMORY SHL 8)+30     ;DOS mem for VIBs in gfReset
  192.  
  193. <EOF>
  194.